1. Field of the Invention
This invention relates to networks, and more particularly to networks including one or more network devices remotely coupled to a server.
2. Description of Related Art
A typical personal computer includes a central processing unit (CPU), volatile memory, non-volatile memory (e.g., read only memory or ROM), and a non-volatile storage device (e.g., a hard drive). Operating system data (including instructions) is stored in the non-volatile memory and/or the non-volatile storage device, and accessed by the CPU during startup initialization (i.e., during a boot sequence). Application programs are typically stored in the non-volatile storage device. When a given application program is initiated, at least a portion of the application program is copied into the volatile memory and accessed by the CPU.
A network is formed by linking multiple computing devices together. In a local area network or LAN, the computing devices are geographically close together (e.g., within the same building), and may be coupled to a common transmission medium (e.g., copper wires or fiber optic cable). In a wide area network or WAN, the computing devices are further apart and may be connected by telephone lines or radio signals traveling through air.
In the popular client/server network architecture, at least one of the network computing devices is a server. Each server is a relatively powerful computing device dedicated to managing one or more data storage devices (e.g., high capacity disk drives), network communication traffic, and/or network printers. Clients are computing devices (e.g., personal computers or workstations) on which users run application programs. The network clients rely on the server for resources such as centralized database files, access to other network devices (e.g., printers), and/or processing power.
Personal computers are often linked together to form networks in order to share resources (e.g., centralized databases, printers, etc.). Each personal computer is in itself a complex computing device including hardware and software which must be independently set up and maintained. As a result, managing a network of personal computers requires substantial amounts of time and money.
Recognizing that client computing devices in a client/server network may rely on the more capable server for data storage and/or processing power, client computing devices called xe2x80x9cnetwork computersxe2x80x9d have been developed. In general, network computers have a CPU and memory sufficient to run application programs, connections for input and display devices, and a communication adapter for connecting to a network transmission medium. The non-volatile data storage capacities of network computers are typically minimal, and the server stores some or all of the data (including application programs) required by the network computers. The server provides needed data to the client network computers on demand. As a result, the hardware of a network computer is less complex, less expensive, and easier to maintain than that of a personal computer. In addition, application program upgrades occur on the server and are therefore simpler to accomplish.
Drawbacks to the use of network computers include increased server loading and network communication traffic. Data formerly stored within client personal computers is now stored within the server and provided to client network computers when needed via the network transmission medium. As a result, the amount of network traffic is increased.
As defined herein, a network device is a device adapted for coupling to a computer network (e.g., via a transmission medium) and configured to transmit and/or receive data via the computer network. A representative network device may include, for example, a CPU coupled to a memory. The CPU may execute instructions stored within the memory in order to transmit and/or receive data via the computer network. Examples of network devices include personal computers, network computers, personal digital assistants (PDAs), hand-held computers, palmtop computers, cellular telephones, and input/output devices such as printers and scanners.
When network devices have non-volatile storage devices and store data (e.g., application programs) in the non-volatile storage devices, it is necessary to update the stored data when more current versions of the data exist on the server (i.e., when the stored data is xe2x80x9cout of datexe2x80x9d). A known data update method involves a network device accessing a server storage device, comparing version information of files stored in the non-volatile storage device to version information of like files stored in the server storage device, and copying files from the server storage device to the non-volatile storage device if the file version information does not match. In addition to contributing substantially to network traffic, the known update method is controlled by the network device and not by the server. The server has no control over what data is stored in the non-volatile storage device of the network device.
It would be desirable to have a system and method for server managed modification of data, including operating system data, stored within a network device. The desired system and method should allow the server to control the data stored in a non-volatile storage device of the network device. The desired system and method should also require a minimum of network communication traffic to accomplish the data modification.
A network is described including a server and a network device remotely coupled to the server. The network device includes a non-volatile storage device having data stored therein. The data stored within the non-volatile storage device includes operating system data (including instructions) and/or application programs. The computer system includes hardware and software for server managed modification of the data stored within the non-volatile storage device. The data stored within the non-volatile storage device is preferably modified solely in response to instructions generated by the server.
During initialization, the network device performs an operating system boot sequence in order to load an operating system into a memory of the network device. In one embodiment, the network device performs a first portion of the operating system boot sequence, then generates trigger data forwarded to the server. The trigger data includes identification information for identifying the network device. In response to the trigger data, the server generates action data while the network device performs a second portion of the operating system boot sequence. The action data includes one or more data update instructions for modifying (i.e., updating) the data, including operating system data, stored within the non-volatile storage device. Following the second portion of the operating system boot sequence, the action data is forwarded from the server to the network device. If the action data includes one or more update instructions, the network device performs the one or more update instructions and repeats the operating system boot sequence.
The network device includes a central processing unit (CPU) adapted to execute instructions, and the data stored within the non-volatile storage device of the network device may include instructions. The data stored within the non-volatile storage device may be organized, for example, as multiple files each having a different file name. In this case, each data update instruction may include a file name and a corresponding file update instruction. The file update instruction may direct the network device to either: (i) copy a file having the file name from the server to the data stored within the non-volatile storage device of the network device, or (ii) delete a file having the file name from the data stored within the non-volatile storage device of the network device.
For example, the data stored within the non-volatile storage device may include a first file. A second file stored within a storage device of the server may be an updated version of the first file. In this case, the first and second files have the same file name. Action data generated by the server may include a data update instruction having the file name of the first file and a file update instruction which directs the network device to copy the second file from the server to the data stored within the non-volatile storage device of the network device. The network device responds to the file update instruction by copying the second file from the server to the data stored within the non-volatile storage device such that the first file is overwritten by the second file.
A method for updating data within the computer system includes: (i) forwarding trigger data from the network device to the server during the operating system boot sequence, wherein the trigger data identifies the network device, (ii) conveying action data from the server to the network device during the operating system boot sequence, wherein the action data includes one or more data update instructions described above, and (iii) repeating the operating system boot sequence. The data stored within the non-volatile storage device of the network device may be modified by the network device only in response to the action data. The network device performs the one or more data update instructions as described above in order to update the data stored within the non-volatile storage device. Following performance of the data update instructions and prior to the repeating the operating system boot sequence, the network device may forward update data to the server for updating configuration data. The configuration data includes information about the data stored within the non-volatile storage device of the network device (e.g., the current contents of the non-volatile storage device). The configuration data is preferably stored exclusively in the server.